A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, the computing devices communicate data by dividing the data into small blocks called packets. Devices within the network, such as routers and switches, forward the packets through the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Various protocols exist that allow the intermediate networks devices, such as the routers and switches, to collect and report traffic statistics. For example, the network devices deploy sampling mechanisms that collect traffic statistics on interfaces of the device where traffic is received and/or transmitted. In accordance with the protocols, the network device may periodically export records containing traffic statistics to a centralized device referred to as a packet flow collector of “flow collector.” In many network environments, the flow collector may receive traffic flow information via traffic flow packets sent from various network locations. Consequently, a network administrator can use the packet flow collector to analyze overall network traffic flow. Example protocols for reporting traffic records to a flow collector include NetFlow® by Cisco Systems® and JFlow® by Juniper Networks®.
In general, the sampling mechanisms provided by network devices allow only a static, pre-defined sampling rate to be configured. In other situations, the sampling mechanism may use a random sampling rate.